package com.liner;

public class ObjectDemo {
    public static void main(String[] args) {
        Object point = new Point();




        /*
         * 输出引用变量时默认会调用Object类的toString()方法
         * 该方法返回的字符串格式为:类的全称hashcode值
         * 但通常这个返回结果对我们的开发是没有意义的
         * 我们真正想输出的应该是对象的属性值
         * 我们认为Object类的toString()并不能满足需求
         * 因此我们常常需要重写toString()来返回具体的属性值
         *
         */

        Point point1 = new Point(100, 120);
        System.out.println(point1);
        System.out.println(point1.toString());

        /*
         * 调用Object类的equals() 内部还是使用 == 比较地址,没有参考意义
         * 若想比较对象的属性值相同，我们认为Object类的equals() 不能满足要求
         * 需要重写 equals() 来比较值
         */

        Point p1 = new Point(100, 200);
        Point p2 = new Point(100, 200);
        System.out.println(p1 == p2);   //false
        System.out.println(p1.equals(p2));   //false



        String s1 = new String("hello");
        String s2 = new String("hello");
        System.out.println(s1.equals(s2));   //true

        StringBuilder sb1 = new StringBuilder("hello");
        StringBuilder sb2 = new StringBuilder("hello");
        boolean equals = sb1.equals(sb2);   //false


    }

}
